// Simple File List Pro - File Access Manager - Copyright 2022 // Author: Mitchell Bennis | support@simplefilelist.com | https://simplefilelist.com // License: EULA | https://simplefilelist.com/end-user-license-agreement/ // All changes to, modifications to, or re-uses of this script are prohibited without prior consent. // Copy File to List --------------------------------- // Open the File Copy Modal function eeSFLA_OpenCopyModal(eeSFL_FileID) { event.preventDefault(); // Don't follow the link // Use eeSFL_RealFilePath if Searching // var eeSFL_RealFilePath = jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' span.eeSFL_RealFilePath').text(); // if(eeSFL_RealFilePath) { eeSFL_SubFolder = eeSFL_RealFilePath; } eeSFL_RealFileName = jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' span.eeSFL_RealFileName').text(); jQuery('#eeSFL_Modal_FileID').text(eeSFL_FileID); jQuery('#eeSFLA_Modal_Copy .eeSFL_ModalFilePath').text(eeSFL_RealFileName); jQuery('#eeSFLA_Destination').html(''); // Reset / Clear var eeDestinations = JSON.parse(eeSFLA_CopyDestinations); for(var i = 1; i <= Object.keys(eeDestinations).length ; i++) { // Build Options HTML if(i != eeSFL_ListID) { jQuery('#eeSFLA_Destination').append(''); } } jQuery('#eeSFLA_Modal_Copy').show(); } // AJAX Post to Access Engine function eeSFLA_FileDoCopy() { // File ID event.preventDefault(); // Don't do anything // NOTE - Currently the Copy to List input only selcts one choice, but this script can accept multiple. var eeLists = ''; var eeListIDs = new Array; // Checkbox inputs // eeListIDs = jQuery( "input[name='eeListID']:checked" ); // jQuery.each(eeListIDs, function(index, element) { // eeLists = eeLists + jQuery(element).val() + ','; // }); // Select input var eeLists = jQuery('#eeSFLA_Destination').val(); // Optional Inputs var eeInboxName = jQuery('#eeSFLA_InboxName').val(); var eeInboxDescription = jQuery('#eeSFLA_InboxDescription').val(); var eeInboxEmail = jQuery('#eeSFLA_InboxEmail').val(); var eeInboxNotify = jQuery('#eeSFLA_InboxNotify').val(); if(eeSFL_ListID && eeLists && eeSFL_RealFileName) { var eeFormData = { 'action': 'simplefilelist_copy_job', 'eeSecurity': eeSFLA_CopyNonce, 'eeAction': 'COPY', // COPY 'eeListID': eeSFL_ListID, // Source 'eeListIDs': eeLists, // Destinations 'eeFilePath': eeSFL_RealFileName, // Source File - Relative to FileListDir 'eeInboxName': eeInboxName, 'eeInboxDescription': eeInboxDescription, 'eeInboxEmail': eeInboxEmail, 'eeInboxNotify': eeInboxNotify }; console.log(eeFormData); jQuery.post(eesfl_vars.ajaxurl, eeFormData, function(response) { // Problems if(response != 'SUCCESS') { alert(response); } }); jQuery('.eeSFL_Modal').hide(); } } // Grant Access ------------------------------------- // Open the File Access Modal and Pre-Populate the Inputs function eeSFLA_OpenAccessModal(eeSFL_FileID) { event.preventDefault(); // Don't follow the link var eeID = ''; // Modal Display jQuery('.eeSFLA_UserTick').prop( "checked", false ); // Uncheck the boxes to begin with jQuery('#eeFileMatchMode').val('NO'); eeSFL_RealFileName = jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' span.eeSFL_RealFileName').text(); jQuery('#eeSFLA_Access_FileID').text(eeSFL_FileID); jQuery('#eeSFLA_Modal_Access .eeSFL_ModalFilePath').text(eeSFL_RealFileName); // Get Current Roles and Users for Pre-Population eeSFLA_Access_Role = jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLA_Access_Role').text(); // eeSFLA_Access_Role = 'Min|1'; // eeSFLA_Access_Role = 'Match|Editor'; if(eeSFLA_Access_Role) { var eeArray = eeSFLA_Access_Role.split('|'); jQuery('#eeFileMatchMode').val(eeArray[0]); if(eeArray[0] == 'Min') { jQuery('#eeFileMinRole').val(eeArray[1]); } else { jQuery('#eeFileMatchRole').val(eeArray[1]); } } // Get Currently Assigned Users eeSFLA_Access_Users = jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLA_Access_Users').text(); if(eeSFLA_Access_Users) { var eeArray = eeSFLA_Access_Users.split(','); console.log(eeArray); jQuery.each(eeArray, function(index, element) { jQuery('.eeSFLA_UserTick').each(function() { if(jQuery(this).val() == element) { jQuery(this).prop( "checked", true ); } }); }); } // File Role Selects jQuery('#eeFileMinRole').hide(); jQuery('#eeFileMatchRole').hide(); if(jQuery('#eeFileMatchMode').val() == 'Min') { jQuery('#eeFileMinRole').show(); } else if(jQuery('#eeFileMatchMode').val() == 'Match') { jQuery('#eeFileMatchRole').show(); } // Show It jQuery('#eeSFLA_Modal_Access').show(); } // AJAX Post to Access Engine function eeSFLA_FileDoAccess() { event.preventDefault(); // Don't do anything var eeHasAccess = false; eeSFL_FileID = jQuery('#eeSFLA_Access_FileID').text(); // Get this File Path if(eeSFL_SubFolder != '/') { eeSFL_FullFilePath = eeSFL_SubFolder + eeSFL_RealFileName; eeSFL_FullFilePath = eeSFL_FullFilePath.replace('//', '/'); // Fix double slashes } else { eeSFL_FullFilePath = eeSFL_RealFileName } // Get Checked Users eeSFLA_Access_Users = ''; var eeArray = jQuery( '.eeSFLA_UserTick:checked' ).get(); jQuery.each(eeArray, function(index, element) { eeSFLA_Access_Users = eeSFLA_Access_Users + jQuery(element).val() + ',' }); // Get the Role Selected eeSFLA_Access_Role = jQuery('#eeFileMatchMode').val(); if(eeSFLA_Access_Role == 'Min') { eeSFLA_Access_Role = eeSFLA_Access_Role + '|' + jQuery('#eeFileMinRole').val(); } else if(eeSFLA_Access_Role == 'Match') { eeSFLA_Access_Role = eeSFLA_Access_Role + '|' + jQuery('#eeFileMatchRole').val(); } // List Styling if( eeSFLA_Access_Users.length >= 1 ) { eeHasAccess = true; } if( eeSFLA_Access_Role != 'NO') { eeHasAccess = true; } var eeFormData = { 'action': 'simplefilelist_access_job', 'eeSecurity': eeSFLA_AccessNonce, 'eeListID': eeSFL_ListID, 'eeFilePath': eeSFL_FullFilePath, 'eeUserRole': eeSFLA_Access_Role, // Users: Min|3 or Match|Editor 'eeUserIDs': eeSFLA_Access_Users // Users: 3,8,66,125 }; console.log(eeFormData); jQuery.post(eesfl_vars.ajaxurl, eeFormData, function(response) { console.log(response); if(response != 'SUCCESS') { alert(response); } if(eeHasAccess) { jQuery('#eeSFL_FileID-' + eeSFL_FileID).addClass('eeSFLA_FileHasAccess'); jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLS_HasAccess_Accent ').text('*'); } else { jQuery('#eeSFL_FileID-' + eeSFL_FileID).removeClass('eeSFLA_FileHasAccess'); jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLS_HasAccess_Accent ').text(''); } jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLA_Access_Role').text(eeSFLA_Access_Role); jQuery('#eeSFL_FileID-' + eeSFL_FileID + ' .eeSFLA_Access_Users').text(eeSFLA_Access_Users); jQuery('.eeSFL_Modal').hide(); }); } // Visual Input Controls -------------------------- // ONLOAD ----------------------------------- jQuery(document).ready(function() { jQuery('.eeRoleSelect').hide(); // Limited Role Selects if(jQuery('#eeLimitedMatchMode').val() == 'Min') { jQuery('#eeLimitedMinRole').show(); jQuery('#eeLimitedMatchRole').hide(); } else { jQuery('#eeLimitedMinRole').hide(); jQuery('#eeLimitedMatchRole').show(); } var eeUploadMatchMode = jQuery('#eeUploadMatchMode').val(); if(eeUploadMatchMode == 'Min' || eeUploadMatchMode == 'Match') { if(jQuery('#eeUploadMatchMode').val() == 'Min') { jQuery('#eeUploadMinRole').show(); jQuery('#eeUploadMatchRole').hide(); } else { jQuery('#eeUploadMinRole').hide(); jQuery('#eeUploadMatchRole').show(); } } var eeManageMatchMode = jQuery('#eeManageMatchMode').val(); if(eeManageMatchMode == 'Min' || eeManageMatchMode == 'Match') { if(jQuery('#eeManageMatchMode').val() == 'Min') { jQuery('#eeManageMinRole').show(); jQuery('#eeManageMatchRole').hide(); } else { jQuery('#eeManageMinRole').hide(); jQuery('#eeManageMatchRole').show(); } } var eeCopyMatchMode = jQuery('#eeCopyMatchMode').val(); if(eeCopyMatchMode == 'Min' || eeCopyMatchMode == 'Match') { if(jQuery('#eeCopyMatchMode').val() == 'Min') { jQuery('#eeCopyMinRole').show(); jQuery('#eeCopyMatchRole').hide(); } else { jQuery('#eeCopyMinRole').hide(); jQuery('#eeCopyMatchRole').show(); } } // Show or Hide the Role Selection Box jQuery('#eeSFLA_ListAccessFormInputs input[type=radio]').on('click', function() { var eeVar = jQuery(this).val(); if(eeVar == "LIMITED") { jQuery('#eeLimitedRoleSelect').slideDown(); if(jQuery('#eeLimitedMatchMode').val() == 'Min') { jQuery('#eeLimitedMatchRole').hide(); } else { jQuery('#eeLimitedMinRole').hide(); } } else { jQuery('#eeLimitedRoleSelect').hide(); } if(eeVar == 'GROUP') { jQuery('#eeSFLA_WpUserTickboxes').slideDown(); // Add new option to operations access jQuery('#eeUploadMatchMode').prepend(''); jQuery('#eeUploadMatchMode').val('GROUP'); jQuery('#eeManageMatchMode').prepend(''); jQuery('#eeManageMatchMode').val('GROUP'); jQuery('#eeCopyMatchMode').prepend(''); jQuery('#eeCopyMatchMode').val('GROUP'); jQuery('#eeUploadMinRole').hide(); jQuery('#eeUploadMatchRole').hide(); jQuery('#eeManageMinRole').hide(); jQuery('#eeManageMatchRole').hide(); jQuery('#eeCopyMinRole').hide(); jQuery('#eeCopyMatchRole').hide(); } else { jQuery('#eeSFLA_WpUserTickboxes').hide(); jQuery('#eeUploadMatchModeThisGroupOnly').remove(); jQuery('#eeManageMatchModeThisGroupOnly').remove(); jQuery('#eeCopyMatchModeThisGroupOnly').remove(); } if(eeVar == 'USER') { // Add new option to operations access jQuery('#eeUploadMatchMode').prepend(''); jQuery('#eeUploadMatchMode').val('USER'); jQuery('#eeManageMatchMode').prepend(''); jQuery('#eeManageMatchMode').val('USER'); jQuery('#eeCopyMatchMode').prepend(''); jQuery('#eeCopyMatchMode').val('USER'); jQuery('#eeUploadMinRole').hide(); jQuery('#eeUploadMatchRole').hide(); jQuery('#eeManageMinRole').hide(); jQuery('#eeManageMatchRole').hide(); jQuery('#eeCopyMinRole').hide(); jQuery('#eeCopyMatchRole').hide(); jQuery('#eeSFLA_WpUserSelect').slideDown(); } else { jQuery('#eeSFLA_WpUserSelect').hide(); jQuery('#eeUploadMatchModeThisUserOnly').remove(); jQuery('#eeManageMatchModeThisUserOnly').remove(); jQuery('#eeCopyMatchModeThisUserOnly').remove(); } }); // File Role Settings Display jQuery('#eeFileMatchMode').on('change', function() { var eeMinMatch = jQuery('#eeFileMatchMode').val(); if( eeMinMatch == 'Min' ) { jQuery('#eeFileMatchRole').hide(); jQuery('#eeFileMinRole').show(); } else if(eeMinMatch == 'Match') { jQuery('#eeFileMinRole').hide(); jQuery('#eeFileMatchRole').show(); } else { jQuery('#eeFileMinRole').hide(); jQuery('#eeFileMatchRole').hide(); } }); // Limited List Role Settings Display jQuery('#eeLimitedMatchMode').on('change', function() { var eeMinMatch = jQuery('#eeLimitedMatchMode').val(); if( eeMinMatch == 'Min' ) { jQuery('#eeLimitedMatchRole').hide(); jQuery('#eeLimitedMinRole').show(); } else { jQuery('#eeLimitedMinRole').hide(); jQuery('#eeLimitedMatchRole').show(); } }); // Uploading jQuery('#eeUploadMatchMode').on('change', function() { var eeMinMatch = jQuery('#eeUploadMatchMode').val(); if( eeMinMatch == 'Min' ) { jQuery('#eeUploadMatchRole').hide(); jQuery('#eeUploadMinRole').show(); } else if( eeMinMatch == 'Match' ) { jQuery('#eeUploadMinRole').hide(); jQuery('#eeUploadMatchRole').show(); } else { jQuery('#eeUploadMinRole').hide(); jQuery('#eeUploadMatchRole').hide(); } }); // Manage jQuery('#eeManageMatchMode').on('change', function() { var eeMinMatch = jQuery('#eeManageMatchMode').val(); if( eeMinMatch == 'Min' ) { jQuery('#eeManageMatchRole').hide(); jQuery('#eeManageMinRole').show(); } else if( eeMinMatch == 'Match' ) { jQuery('#eeManageMinRole').hide(); jQuery('#eeManageMatchRole').show(); } else { jQuery('#eeManageMinRole').hide(); jQuery('#eeManageMatchRole').hide(); } }); // Copy jQuery('#eeCopyMatchMode').on('change', function() { var eeMinMatch = jQuery('#eeCopyMatchMode').val(); if( eeMinMatch == 'Min' ) { jQuery('#eeCopyMatchRole').hide(); jQuery('#eeCopyMinRole').show(); } else if( eeMinMatch == 'Match' ) { jQuery('#eeCopyMinRole').hide(); jQuery('#eeCopyMatchRole').show(); } else { jQuery('#eeCopyMinRole').hide(); jQuery('#eeCopyMatchRole').hide(); } }); // Auto-fill new list folder input jQuery('#eeSFLA_ListName').on('change', function() { // Check if this is in our list of current list titles var eeTitle = jQuery('#eeSFLA_ListName').val(); jQuery('#eeSFLA_ListName').css('background-color', '#FFF'); var eePos = eeAllListTitles.indexOf(eeTitle); if(eePos > 0) { // List name already used jQuery('#eeSFLA_ListName').css('background-color', '#FC6969'); } else { var eeDir = jQuery('#eeSFLA_ListDir').val(); if(eeDir.length < 1) { eeDir = jQuery('#eeSFLA_ListName').val(); // Fill the PostTitle Box jQuery('#eeSFLA_CreatePostTitle').val(eeDir); // Sanitize to match reality eeDir = eeDir.replace(/ /g, '-'); // Deal with spaces eeDir = eeDir.replace(/--/g, '-'); // Deal with double dash eeDir = eeDir.replace(/\./g, '-'); // Deal with dots eeDir = eeDir.replace(/[^a-zA-Z0-9-]/g, ""); // Strip special chars, cept the dash eeDir = eeDir.toLowerCase(); jQuery('#eeSFLA_ListDir').val('wp-content/uploads/' + eeDir + '/'); } } }); // Check / Uncheck all Tickboxes jQuery('#eeSFLA_CheckAll').on('click', function() { if( jQuery('#eeSFLA_CheckAll').text() == 'Uncheck All') { jQuery('#eeSFLA_Users input:checkbox').removeAttr('checked'); jQuery('#eeSFLA_CheckAll').text('Check All'); } else { jQuery('#eeSFLA_Users input:checkbox').attr('checked','checked'); jQuery('#eeSFLA_CheckAll').text('Uncheck All'); } }); // If File Grant Access is Anybody, disable user checkboxes jQuery('.eeSFLA_AnybodyTick').on('click', function() { // Identify this file var eeID = '.' + jQuery(this).parent().parent().attr('class'); if( jQuery(eeID + ' .eeSFLA_AnybodyTick').is(':checked') ) { jQuery(eeID + ' .eeSFLA_UserTick').attr('disabled', true); jQuery(eeID + ' .eeSFLA_AnybodyTick').removeAttr('disabled'); } else { jQuery(eeID + ' .eeSFLA_UserTick').removeAttr('disabled'); } }); }); // END Ready Function